串接寫法
以上的 where, order , limit, offset, joins, select 等等,都可以自由串接起來組合出最終的 SQL 條件:
p = Person.where(:city => 'Taipei').order("id DESC").limit(3)
find_each 批次處理
如果資料量很大,但是又需要全部拿出來處理,可以使用 find_each 批次處理
Person.where("age > 25").find_each do |p|
p.do_some_thing
end
重新載入
需要重新載入,可以使用reload方法
p = Person.first
p.reload
如何刪除
刪除有兩種方法,一種是找到該物件,使用destory方法
另一種是對類別呼叫delete來某筆資料,傳入ID或條件
#destroy:
p = Person.last
p.destroy
#delete:
p = Person.delete(3)
Person.delete_all(conditions = nil)
Person.destroy_all(conditions = nil)
#delete 不會有 callback 回呼,destroy 有 callback 回呼。
統計方法
Person.count
Person.average(:height)
Person.maximum(:height)
Person.sum(:age)
一樣也可以利用where縮小範圍
Person.where(:city => 'Taipei').count